package com.atguigu.gmall.product.comtroller;

import com.atguigu.gmall.common.result.Result;
import com.atguigu.gmall.model.product.BaseTrademark;
import com.atguigu.gmall.product.service.BaseTrademarkService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 *
 * 商品品牌管理 controller组件
 * @author : zjj
 * @date : 2021/1/29 11:38
 */

@RestController
@RequestMapping("admin/product/baseTrademark")
public class BaseTrademarkController {
    /**
     * 商品品牌管理service组件
     */
    @Autowired
    private BaseTrademarkService baseTrademarkService;


    /**
     * 分页查询品牌列表
     * @param page  第几页
     * @param limit 每页大小
     * @return      分页数据
     */
    @GetMapping("{page}/{limit}")
    public Result index(@ApiParam(name = "page",value = "当前页码",required = true)
                        @PathVariable Long page,
                        @ApiParam(name = "limit",value = "每页的记录数",required = true)
                        @PathVariable Long limit
    ){
        Page<BaseTrademark> pageParam = new Page<>(page,limit);
        IPage<BaseTrademark> baseTrademarks = baseTrademarkService.selectPage(pageParam);

        return Result.ok(baseTrademarks);

    }

    /**
     * 通过品牌id获取品牌信息
     * @param id    品牌id
     * @return      品牌信息
     */
    @GetMapping("get/{id}")
    public Result<BaseTrademark> getById(@PathVariable("id") Long id){
        return Result.ok( baseTrademarkService.getById(id));
    }


    /**
     * 保存品牌信息
     * @param baseTrademark 品牌信息
     * @return              保存结果
     */
    @PostMapping("save")
    public Result save(@RequestBody BaseTrademark baseTrademark){
        System.out.println("保存方法");
        baseTrademarkService.save(baseTrademark);

        return Result.ok();
    }

    /**
     * 根据id删除品牌信息
     * @param id    品牌id
     * @return      处理结果
     */
    @DeleteMapping("remove/{id}")
    public Result remove(@PathVariable Long id){
        System.out.println("删除方法");
        baseTrademarkService.removeById(id);
        return Result.ok();
    }

    /**
     * 修改品牌信息
     * @param baseTrademark 品牌信息
     * @return              处理结果
     */
    @PutMapping("update")
    public Result update(@RequestBody BaseTrademark baseTrademark){
        System.out.println("修改方法");
        baseTrademarkService.updateById(baseTrademark);
        return Result.ok();
    }







}
